import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 黎鹤舞
 * Date: 2023-11-19
 * Time: 9:36
 */

//接口使用的实例:
public class Test {


    //或者我们自己写一个mySort函数用来排序
    //通过传参接口，只要实现接口的对象都能传递
    public static void mySort(Comparable[] comparables) {

        //通过冒泡排序来实现
        //对象数组的长度 控制外层循环的次数，但是最后一个不进行交换
        for (int i = 0; i < comparables.length - 1; i++) {

            for (int j = 0; j < comparables.length - i - 1; j++) {
                //如果第一个对象compareTo 大于后面一个，则进行交换
                if(comparables[j].compareTo(comparables[j+1]) > 0) {
                    Comparable temp = comparables[j];
                    comparables[j] = comparables[j+1];
                    comparables[j+1] = temp;
                }
            }
            
        }
    }

    //给对象数组排序
    public static void main(String[] args) {

        //建立一个Student类的对象数组 Student[] 数组名为students
        Student[] students = new Student[] {
                new Student("张三", 95),
                new Student("李四", 96),
                new Student("王五", 97),
                new Student("赵六", 92),
        };


        mySort(students);
        System.out.println(Arrays.toString(students));
        System.out.println("=============");
        //如果直接使用sort方法来排序 对象数组 students 会提示报错；因为不知道以什么方式进行排序
        Arrays.sort(students);
        //这里源码是强制类型转化为(Comparable);
        System.out.println(Arrays.toString(students));

    }
}
